<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>AngularJS</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/AngularJS"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-AngularJS rootpage-AngularJS skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">AngularJS</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">This article is about the first version of the Angular framework. For versions 2 and later, see <a href="Angular_(web_framework)" title="Angular (web framework)">Angular (web framework)</a>.</div>
<style data-mw-deduplicate="TemplateStyles:r1295905060">
/* start https://en.wikipedia.org/ */
.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}
/* end https://en.wikipedia.org/ */
</style><table class="infobox vevent"><tbody><tr><th colspan="2" class="infobox-above summary">AngularJS</th></tr><tr><td colspan="2" class="infobox-image logo"></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Programmer" title="Programmer">Original author(s)</a></th><td class="infobox-data">Miško Hevery</td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Programmer" title="Programmer">Developer(s)</a></th><td class="infobox-data"><a href="Google" title="Google">Google</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;">Initial release</th><td class="infobox-data">October 20, 2010<span style="display:none"> (<span class="bday dtstart published updated">2010-10-20</span>)</span><sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup></td></tr><tr style="display: none;"><td colspan="2" class="infobox-full-data"></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Software_release_life_cycle" title="Software release life cycle">Stable release</a></th><td class="infobox-data"><div style="margin:0px;">1.8.3<sup id="cite_ref-wikidata-93b8a618747cf148635b548037c8f013f10da6ca-v20_2-0" class="reference"><a href="#cite_note-wikidata-93b8a618747cf148635b548037c8f013f10da6ca-v20-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
/ 7 April 2022<span style="display:none"> (<span class="bday dtstart published updated">7 April 2022</span>)</span></div></td></tr><tr style="display:none"><td colspan="2">
</td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Repository_(version_control)" title="Repository (version control)">Repository</a></th><td class="infobox-data"><span class="url"><a rel="nofollow" class="external text" href="https://github.com/angular/angular.js">AngularJS Repository</a></span></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;">Written in</th><td class="infobox-data"><a href="JavaScript" title="JavaScript">JavaScript</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Computing_platform" title="Computing platform">Platform</a></th><td class="infobox-data"><a href="JavaScript_engine" class="mw-redirect" title="JavaScript engine">JavaScript engine</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="File_size" title="File size">Size</a></th><td class="infobox-data">167 kB production<br>1.2 MB development</td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Software_categories#Categorization_approaches" title="Software categories">Type</a></th><td class="infobox-data"><a href="Web_framework" title="Web framework">Web framework</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Software_license" title="Software license">License</a></th><td class="infobox-data"><a href="MIT_License" title="MIT License">MIT License</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;">Website</th><td class="infobox-data"><span class="url"><a rel="nofollow" class="external text" href="https://angularjs.org">angularjs<wbr>.org</a></span> <span class="penicon autoconfirmed-show"></span></td></tr></tbody></table>
<p><b>AngularJS</b> (also known as <b>Angular 1</b>) is a discontinued <a href="Free_and_open-source_software" title="Free and open-source software">free and open-source</a> <a href="JavaScript" title="JavaScript">JavaScript</a>-based <a href="Web_framework" title="Web framework">web framework</a> for developing <a href="Single-page_application" title="Single-page application">single-page applications</a>. It was maintained mainly by <a href="Google" title="Google">Google</a> and a community of individuals and corporations. It aimed to simplify both the development and the <a href="Software_testing" title="Software testing">testing</a> of such applications by providing a framework for client-side <a href="Model%E2%80%93view%E2%80%93controller" title="Model–view–controller">model–view–controller</a> (MVC) and <a href="Model%E2%80%93view%E2%80%93viewmodel" title="Model–view–viewmodel">model–view–viewmodel</a> (MVVM) architectures, along with components commonly used in <a href="Web_application" title="Web application">web applications</a> and <a href="Progressive_web_application" class="mw-redirect" title="Progressive web application">progressive web applications</a>.
</p><p>AngularJS was used as the frontend of the <a href="MEAN_(software_bundle)" class="mw-redirect" title="MEAN (software bundle)">MEAN</a> stack, that consisted of <a href="MongoDB" title="MongoDB">MongoDB</a> database, <a href="Express.js" title="Express.js">Express.js</a> web application server framework, AngularJS itself (or <a href="Angular_(application_platform)" class="mw-redirect" title="Angular (application platform)">Angular</a>), and <a href="Node.js" title="Node.js">Node.js</a> server runtime environment.
</p><p>As of January 1, 2022, Google no longer updates AngularJS to fix security, browser compatibility, or <a href="JQuery" title="JQuery">jQuery</a> issues.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:1_4-0" class="reference"><a href="#cite_note-:1-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:0_5-0" class="reference"><a href="#cite_note-:0-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> The Angular team recommends upgrading to <a href="Angular_(web_framework)" title="Angular (web framework)">Angular (v2+)</a> as the best path forward, but they also provided some other options.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Overview">Overview</h2></div>
<p>The AngularJS framework worked by first reading the <a href="HTML" title="HTML">HyperText Markup Language</a> (HTML) page, which had additional custom <a href="HTML_attribute" title="HTML attribute">HTML attributes</a> embedded into it. Angular interpreted those attributes as <a href="Directive_(programming)" title="Directive (programming)">directives</a> to bind input or output parts of the page to a model that is represented by standard JavaScript <a href="Variable_(computer_science)" title="Variable (computer science)">variables</a>. The values of those JavaScript variables could be manually set within the code or retrieved from static or dynamic <a href="JSON" title="JSON">JSON</a> resources.
</p><p>AngularJS was built on the belief that <a href="Declarative_programming" title="Declarative programming">declarative programming</a> should be used to create <a href="User_interface" title="User interface">user interfaces</a> and connect <a href="Software_component" title="Software component">software components</a>, while <a href="Imperative_programming" title="Imperative programming">imperative programming</a> was better suited to defining an application's <a href="Business_logic" title="Business logic">business logic</a>.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> The framework adapted and extended traditional HTML to present dynamic content through two-way data-binding that allowed for the automatic synchronization of models and views. As a result, AngularJS de-emphasized explicit <a href="Document_Object_Model" title="Document Object Model">Document Object Model</a> (DOM) manipulation with the goal of improving testability and performance.
</p><p>AngularJS's design goals included:
</p>
<ul><li>to decouple DOM manipulation from application logic. The difficulty of this is dramatically affected by the way the code is structured.</li>
<li>to decouple the client side of an application from the server-side. This allows development work to progress in parallel and allows for reuse of both sides.</li>
<li>to provide structure for the journey of building an application: from designing the UI, through writing the business logic, to testing.</li></ul>
<p>AngularJS implemented the MVC pattern to separate presentation, data, and logic components.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> Using <a href="Dependency_injection" title="Dependency injection">dependency injection</a>, Angular brought traditionally <a href="Server-side" class="mw-redirect" title="Server-side">server-side</a> services, such as view-dependent controllers, to client-side web applications. Consequently, much of the burden on the server could be reduced.
</p>
<div class="mw-heading mw-heading2"><h2 id="Scope">Scope</h2></div>
<p>AngularJS used the term "scope" in a manner akin to the fundamentals of computer science.
</p><p><a href="Scope_(computer_science)" title="Scope (computer science)">Scope</a> in computer science describes when in the program a particular <a href="Name_binding" title="Name binding">binding</a> is valid. The <a href="ECMA-262" class="mw-redirect" title="ECMA-262">ECMA-262</a> specification defines scope as: a lexical environment in which a Function object is executed in client-side web scripts;<sup id="cite_ref-es5-x10.2_9-0" class="reference"><a href="#cite_note-es5-x10.2-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> akin to how scope is defined in <a href="Lambda_calculus" title="Lambda calculus">lambda calculus</a>.<sup id="cite_ref-BarendregtBarendsen_10-0" class="reference"><a href="#cite_note-BarendregtBarendsen-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup>
</p><p>As a part of the "MVC" architecture, the scope forms the "Model", and all variables defined in the scope can be accessed by the "View" as well as the "Controller". The scope behaves as a glue and binds the "View" and the "Controller".
</p>
<div class="mw-heading mw-heading2"><h2 id="Bootstrap">Bootstrap</h2></div>
<p>The task performed by the AngularJS <a href="Bootstrapper" class="mw-redirect" title="Bootstrapper">bootstrapper</a> occurred in three phases<sup id="cite_ref-Writing_Directives_11-0" class="reference"><a href="#cite_note-Writing_Directives-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> after the DOM has been loaded:
</p>
<ol><li>Creation of a new Injector</li>
<li>Compilation of the directives that decorate the DOM</li>
<li>Linking of all directives to scope</li></ol>
<p>AngularJS directives allowed the developer to specify custom and reusable HTML-like elements and attributes that define data bindings and the behavior of presentation components. Some of the most commonly used directives were:
</p>
<dl><dt><code>ng-animate</code></dt>
<dd>A module provides support for JavaScript, CSS3 transition and CSS3 keyframe animation hooks within existing core and custom directives.</dd>
<dt><code>ng-app</code></dt>
<dd>Declares the root element of an AngularJS application, under which directives can be used to declare bindings and define behavior.</dd>
<dt><code>ng-aria</code></dt>
<dd>A module for accessibility support of common <a href="WAI-ARIA" title="WAI-ARIA">ARIA attributes</a>.</dd>
<dt><code>ng-bind</code></dt>
<dd>Sets the text of a DOM element to the value of an expression. For example, <code><span ng-bind="name"></span></code> displays the value of 'name' inside the span element. Any change to the variable 'name' in the application's scope reflect instantly in the DOM.</dd>
<dt><code>ng-class</code></dt>
<dd>Conditionally apply a class, depending on the value of a Boolean expression.</dd>
<dt><code>ng-controller</code></dt>
<dd>Specifies a JavaScript controller class that evaluates HTML expressions.</dd>
<dt><code>ng-if</code></dt>
<dd>Basic if statement directive that instantiates the following element if the conditions are true. When the condition is false, the element is removed from the DOM. When true, a clone of the compiled element is re-inserted.</dd>
<dt><code>ng-init</code></dt>
<dd>Called once when the element is initialized.</dd>
<dt><code>ng-model</code></dt>
<dd>Similar to <code>ng-bind</code>, but establishes a two-way data binding between the view and the scope.</dd>
<dt><code>ng-model-options</code></dt>
<dd>Provides tuning for how model updates are done.</dd>
<dt><code>ng-repeat</code></dt>
<dd>Instantiate an element once per item from a collection.</dd>
<dt><code>ng-show</code> & <code>ng-hide</code></dt>
<dd>Conditionally show or hide an element, depending on the value of a Boolean expression. Show and hide is achieved by setting the CSS display style.</dd>
<dt><code>ng-switch</code></dt>
<dd>Conditionally instantiate one template from a set of choices, depending on the value of a selection expression.</dd>
<dt><code>ng-view</code></dt>
<dd>The base directive responsible for handling routes<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> that resolve JSON before rendering templates driven by specified controllers.</dd></dl>
<p>Since <b><code>ng-*</code></b> attributes are not valid in HTML specifications, <b><code>data-ng-*</code></b> can also be used as a prefix. For example, both <b><code>ng-app</code></b> and <b><code>data-ng-app</code></b> are valid in AngularJS.
</p>
<div class="mw-heading mw-heading2"><h2 id="Two-way_data_binding">Two-way data binding</h2></div>
<p>AngularJS two-way <a href="Data_binding" title="Data binding">data binding</a> had its most notable feature, largely relieving the server backend of templating responsibilities. Instead, templates were rendered in plain HTML according to data contained in a scope defined in the model. The <code>$scope</code> service in Angular detected changes to the model section and modified HTML expressions in the view via a controller. Likewise, any alterations to the view were reflected in the model. This circumvented the need to actively manipulate the DOM and encouraged bootstrapping and rapid prototyping of web applications.<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup>
AngularJS detected changes in models by comparing the current values with values stored earlier in a process of dirty-checking, unlike <a href="Ember.js" title="Ember.js">Ember.js</a> and <a href="Backbone.js" title="Backbone.js">Backbone.js</a> that triggered listeners when the model values are changed.<sup id="cite_ref-Misko_Hevery_14-0" class="reference"><a href="#cite_note-Misko_Hevery-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup>
</p>
<dl><dt><code>$watch</code></dt>
<dd>is an angular method used for dirty checking. Any variable or expression assigned in $scope automatically sets up a <style data-mw-deduplicate="TemplateStyles:r886049734">
/* start https://en.wikipedia.org/ */
.mw-parser-output .monospaced{font-family:monospace,monospace}
/* end https://en.wikipedia.org/ */
</style><span class="monospaced">$watchExpression</span> in angular. So assigning a variable to <span class="monospaced">$scope</span> or using directives like <span class="monospaced">ng-if, ng-show, ng-repeat</span> etc. all create watches in angular scope automatically. Angular maintains a simple array of <span class="monospaced">$$watchers</span> in the <span class="monospaced">$scope</span> objects</dd>
<dd>Different ways of defining a watcher in AngularJS.
<ul><li>explicitly $watch an attribute on <span class="monospaced">$scope</span>.
<dl><dd><code>$scope.$watch('person.username', validateUnique);</code></dd></dl></li>
<li>place an interpolation in your template (a watcher will be created for you on the current $scope).</li>
<li>ask a directive such as <span class="monospaced">ng-model</span> to define the watcher for you.
<dl><dd><code><input ng-model="person.username" /></code></dd></dl></li></ul></dd></dl>
<dl><dt><code>$digest</code></dt>
<dd>is angular method that is invoked internally by angularjs in frequent intervals. In <span class="monospaced">$digest</span> method, angular iterates over all <span class="monospaced">$watches</span> in its scope/child scopes.</dd></dl>
<dl><dt><code>$apply</code></dt>
<dd>is an angular method that internally invokes <span class="monospaced">$digest</span>. This method is used when you want to tell angular manually start dirty checking (execute all <span class="monospaced">$watches</span>)</dd></dl>
<dl><dt><code>$destroy</code></dt>
<dd>is both a method and event in angularjs. <span class="monospaced">$destroy()</span> method, removes a scope and all its children from dirty checking. <span class="monospaced">$destroy</span> event is called by angular whenever a $scope or $controller is destroyed.</dd></dl>
<div class="mw-heading mw-heading2"><h2 id="Development_history">Development history</h2></div>
<p>AngularJS was originally developed in 2009 by Miško Hevery<sup id="cite_ref-angularishere_15-0" class="reference"><a href="#cite_note-angularishere-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> at Brat Tech LLC<sup id="cite_ref-getangular-archive.org_16-0" class="reference"><a href="#cite_note-getangular-archive.org-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> as the software behind an online <a href="JSON" title="JSON">JSON</a> storage service, that would have been priced by the megabyte, for easy-to-make applications for the enterprise. This venture was located at the web domain "GetAngular.com",<sup id="cite_ref-getangular-archive.org_16-1" class="reference"><a href="#cite_note-getangular-archive.org-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> and had a few subscribers, before the two decided to abandon the business idea and release Angular as an open-source library.
</p><p>The 1.6 release added many of the concepts of <a href="Angular_(Application_Platform)" class="mw-redirect" title="Angular (Application Platform)">Angular</a> to AngularJS, including the concept of a component-based application architecture.<sup id="cite_ref-angularjs-158-dev-guide-components_17-0" class="reference"><a href="#cite_note-angularjs-158-dev-guide-components-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> This release among others removed the Sandbox, which many developers believed provided additional security, despite numerous vulnerabilities that had been discovered that bypassed the sandbox.<sup id="cite_ref-angularjs-github-changelog_18-0" class="reference"><a href="#cite_note-angularjs-github-changelog-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup> The current (as of November 2023) stable release of AngularJS is 1.8.3<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup>
</p><p>In January 2018, a schedule was announced for phasing-out AngularJS: after releasing 1.7.0, the active development on AngularJS would continue until June 30, 2018. Afterwards, 1.7 was supported until December 31, 2021 as <a href="Long-term_support" title="Long-term support">long-term support</a>.<sup id="cite_ref-:1_4-1" class="reference"><a href="#cite_note-:1-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:0_5-1" class="reference"><a href="#cite_note-:0-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Legacy_browser_support">Legacy browser support</h3></div>
<p>Versions 1.3 and later of AngularJS did not support <a href="Internet_Explorer_8" title="Internet Explorer 8">Internet Explorer 8</a> or earlier. While AngularJS 1.2 supported IE8, its team does not.<sup id="cite_ref-angularjs-ie-compat_20-0" class="reference"><a href="#cite_note-angularjs-ie-compat-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-angularjs-13_21-0" class="reference"><a href="#cite_note-angularjs-13-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Angular_and_AngularDart">Angular and AngularDart</h3></div>
<p>Subsequent versions of AngularJS are simply called <a href="Angular_(application_platform)" class="mw-redirect" title="Angular (application platform)">Angular</a>.<sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup> Angular is an incompatible <a href="TypeScript" title="TypeScript">TypeScript</a>-based rewrite of AngularJS. Angular 4 was announced on 13 December 2016, skipping 3 to avoid a confusion due to the misalignment of the router package's version which was already distributed as v3.3.0.<sup id="cite_ref-23" class="reference"><a href="#cite_note-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup>
</p><p>AngularDart works on <a href="Dart_(programming_language)" title="Dart (programming language)">Dart</a>, which is an <a href="Object-oriented_programming" title="Object-oriented programming">object-oriented</a>, <a href="Class-based_programming" title="Class-based programming">class defined</a>, <a href="Single_inheritance" class="mw-redirect" title="Single inheritance">single inheritance</a> programming language using <a href="C_Sharp_(programming_language)" title="C Sharp (programming language)">C</a> style <a href="Syntax_(programming_languages)" title="Syntax (programming languages)">syntax</a>, that is different from Angular JS (which uses <a href="JavaScript" title="JavaScript">JavaScript</a>) and Angular 2/ Angular 4 (which uses <a href="TypeScript" title="TypeScript">TypeScript</a>). Angular 4 released in March 2017, with the framework's version aligned with the version number of the router it used. Angular 5 was released on November 1, 2017.<sup id="cite_ref-24" class="reference"><a href="#cite_note-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup> Key improvements in Angular 5 include support for progressive Web apps, a build optimizer and improvements related to Material Design.<sup id="cite_ref-25" class="reference"><a href="#cite_note-25"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup> Angular 6 was released on 3 May 2018,<sup id="cite_ref-26" class="reference"><a href="#cite_note-26"><span class="cite-bracket">[</span>26<span class="cite-bracket">]</span></a></sup> Angular 7 was released on 18 October 2018, and Angular 8 was released on May 28, 2019.
Angular follows Semantic Versioning standards, with each major version number indicating potentially breaking changes. Angular has pledged to provide 6 months of active support for each major version followed by 12 months of long-term support. Major releases are bi-yearly with 1 to 3 minor releases for every major release.<sup id="cite_ref-27" class="reference"><a href="#cite_note-27"><span class="cite-bracket">[</span>27<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Angular_Universal">Angular Universal</h3></div>
<p>A normal Angular application executes in the browser, while Angular Universal generates static application pages on the server through server-side rendering (SSR).<sup id="cite_ref-28" class="reference"><a href="#cite_note-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Libraries">Libraries</h2></div>
<div class="mw-heading mw-heading3"><h3 id="AngularJS_Material">AngularJS Material</h3></div>
<style data-mw-deduplicate="TemplateStyles:r1251242444">
/* start https://en.wikipedia.org/ */
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style>
<p>AngularJS Material<sup id="cite_ref-angularjs-material-github_29-0" class="reference"><a href="#cite_note-angularjs-material-github-29"><span class="cite-bracket">[</span>29<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-angularjs-material-documentation_30-0" class="reference"><a href="#cite_note-angularjs-material-documentation-30"><span class="cite-bracket">[</span>30<span class="cite-bracket">]</span></a></sup> was a <a href="User_interface" title="User interface">UI</a> component library that implemented <a href="Material_Design" title="Material Design">Material Design</a> in AngularJS.<sup id="cite_ref-31" class="reference"><a href="#cite_note-31"><span class="cite-bracket">[</span>31<span class="cite-bracket">]</span></a></sup> The library provided a set of reusable, well-tested, and accessible <a href="User_interface" title="User interface">UI</a> components. In January 2022, the library was closed, as announced on their official website.<sup id="cite_ref-32" class="reference"><a href="#cite_note-32"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup> The AngularJS Material library is a mature and stable product that is ready for production use and works only with AngularJS 1.x. The Angular Material library is available in the angular/material2 <a rel="nofollow" class="external text" href="https://github.com/angular/material2">GitHub repository</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Chrome_extension">Chrome extension</h2></div>
<p>In July 2012, the Angular team built an extension for the <a href="Google_Chrome" title="Google Chrome">Google Chrome</a> browser called Batarang,<sup id="cite_ref-batarang-github_33-0" class="reference"><a href="#cite_note-batarang-github-33"><span class="cite-bracket">[</span>33<span class="cite-bracket">]</span></a></sup> that improved the debugging experience for web applications built with Angular. The extension aimed to allow for easy detection of performance bottlenecks and offered a GUI for debugging applications.<sup id="cite_ref-introbatarang_34-0" class="reference"><a href="#cite_note-introbatarang-34"><span class="cite-bracket">[</span>34<span class="cite-bracket">]</span></a></sup> For a time during late 2014 and early 2015, the extension was not compatible with recent releases (after v1.2.x) of Angular.<sup id="cite_ref-35" class="reference"><a href="#cite_note-35"><span class="cite-bracket">[</span>35<span class="cite-bracket">]</span></a></sup> The last update made to this extension was on April 4, 2017. Additionally, the extension was removed from the Chrome Web Store on June 1, 2022, due to its lack of updates and potential security concerns, such as requiring sensitive permissions.
</p>
<div class="mw-heading mw-heading2"><h2 id="Performance">Performance</h2></div>
<p>AngularJS set out the paradigm of a <i>digest cycle</i>. This cycle could be considered a loop, during which AngularJS checked if there were any changes to all the variables watched by all the <code>$scopes</code>. If <code>$scope.myVar</code> is defined in a controller and this variable was marked for watching, Angular would monitor the changes on myVar in each loop iteration.
</p><p>This approach potentially led to slow rendering when AngularJS checked on too many variables in the <code>$scope</code> every cycle. Miško Hevery suggested keeping fewer than 2000 watchers on any page.<sup id="cite_ref-Misko_Hevery_14-1" class="reference"><a href="#cite_note-Misko_Hevery-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="React.js" class="mw-redirect" title="React.js">React.js</a></li>
<li><a href="Vue.js" title="Vue.js">Vue.js</a></li>
<li><a href="Polymer_(library)" title="Polymer (library)">Polymer (library)</a></li>
<li><a href="Comparison_of_JavaScript_frameworks" class="mw-redirect" title="Comparison of JavaScript frameworks">Comparison of JavaScript frameworks</a></li>
<li><a href="TypeScript" title="TypeScript">TypeScript</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/angular/angular.js/releases?after=v0.9.4">"Releases · angular/angular.js"</a>. <i>GitHub</i><span class="reference-accessdate">. Retrieved <span class="nowrap">April 9,</span> 2021</span>.</cite></span>
</li>
<li id="cite_note-wikidata-93b8a618747cf148635b548037c8f013f10da6ca-v20-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-93b8a618747cf148635b548037c8f013f10da6ca-v20_2-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/angular/angular.js/releases/tag/v1.8.3">"Release 1.8.3"</a>. 7 April 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">29 July</span> 2022</span>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.angularjs.org/misc/version-support-status">"AngularJS"</a>. <i>docs.angularjs.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2021-05-14</span></span>.</cite></span>
</li>
<li id="cite_note-:1-4"><span class="mw-cite-backlink">^ <a href="#cite_ref-:1_4-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:1_4-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.angularjs.org/misc/version-support-status">"AngularJS"</a>. <i>docs.angularjs.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">April 9,</span> 2021</span>.</cite></span>
</li>
<li id="cite_note-:0-5"><span class="mw-cite-backlink">^ <a href="#cite_ref-:0_5-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:0_5-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFDarwin2020" class="citation web cs1">Darwin, Pete Bacon (27 July 2020). <a rel="nofollow" class="external text" href="https://blog.angular.dev/stable-angularjs-and-long-term-support-7e077635ee9c">"Stable AngularJS and Long Term Support"</a>. <i>Angular Blog</i><span class="reference-accessdate">. Retrieved <span class="nowrap">April 9,</span> 2021</span>.</cite></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite id="CITEREFTechson2021" class="citation web cs1">Techson, Mark (February 2, 2021). <a rel="nofollow" class="external text" href="https://blog.angular.dev/finding-a-path-forward-with-angularjs-7e186fdd4429">"Finding a Path Forward with AngularJs"</a>. <i>Medium</i><span class="reference-accessdate">. Retrieved <span class="nowrap">April 9,</span> 2021</span>.</cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.angularjs.org/guide/introduction">"What Is Angular?"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">12 February</span> 2013</span>.</cite></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.angularjs.org/guide/component">"AngularJS"</a>. <i>docs.angularjs.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">April 9,</span> 2021</span>.</cite></span>
</li>
<li id="cite_note-es5-x10.2-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-es5-x10.2_9-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://es5.github.io/#x10.2">"Annotated ECMAScript 5.1, Section 10.2 Lexical Environments"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2015-01-03</span></span>.</cite></span>
</li>
<li id="cite_note-BarendregtBarendsen-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-BarendregtBarendsen_10-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFBarendregtBarendsen2000" class="citation cs2">Barendregt, Henk; Barendsen, Erik (March 2000), <a rel="nofollow" class="external text" href="https://web.archive.org/web/20200429020430/ftp://ftp.cs.ru.nl/pub/CompMath.Found/lambda.pdf"><i>Introduction to Lambda Calculus</i></a> <span class="cs1-format">(PDF)</span>, archived from <a rel="nofollow" class="external text" href="ftp://ftp.cs.ru.nl/pub/CompMath.Found/lambda.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2020-04-29</cite></span>
</li>
<li id="cite_note-Writing_Directives-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-Writing_Directives_11-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=WqmeI5fZcho&list=TLJUxRYO87UWA">"Writing Directives"</a>. angularjs.org. November 28, 2012<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-07-21</span></span>.</cite></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.angularjs.org/guide/component-router">"AngularJS"</a>. <i>docs.angularjs.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">April 9,</span> 2021</span>.</cite></span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://net.tutsplus.com/tutorials/javascript-ajax/5-awesome-angularjs-features/">"5 Awesome AngularJS Features"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">13 February</span> 2013</span>.</cite></span>
</li>
<li id="cite_note-Misko_Hevery-14"><span class="mw-cite-backlink">^ <a href="#cite_ref-Misko_Hevery_14-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Misko_Hevery_14-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFHevery" class="citation web cs1">Hevery, Misko. <a rel="nofollow" class="external text" href="https://stackoverflow.com/a/9693933/146423">"Databinding in angularjs"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2014-03-09</span></span>.</cite></span>
</li>
<li id="cite_note-angularishere-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-angularishere_15-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://misko.hevery.com/2009/09/28/hello-world-angular-is-here/">"Hello World, <angular/> is here"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2014-10-12</span></span>.</cite></span>
</li>
<li id="cite_note-getangular-archive.org-16"><span class="mw-cite-backlink">^ <a href="#cite_ref-getangular-archive.org_16-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-getangular-archive.org_16-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20100413141437/http://getangular.com/">"GetAngular"</a>. Angular / BRAT Tech. LLC. Archived from <a rel="nofollow" class="external text" href="http://getangular.com/">the original</a> on 2010-04-13<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-10-12</span></span>.</cite> </span>
</li>
<li id="cite_note-angularjs-158-dev-guide-components-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-angularjs-158-dev-guide-components_17-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://code.angularjs.org/1.5.8/docs/guide/component">"AngularJS: Developer Guide for v1.5.8: Components"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2017-09-26</span></span>.</cite></span>
</li>
<li id="cite_note-angularjs-github-changelog-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-angularjs-github-changelog_18-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/angular/angular.js/blob/master/CHANGELOG.md">"angular.js"</a>. <i>GitHub</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2017-09-26</span></span>.</cite></span>
</li>
<li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/angular/angular.js/releases/tag/v1.8.3">"Release v1.8.3 · angular/angular.js"</a>. <i>GitHub</i><span class="reference-accessdate">. Retrieved <span class="nowrap">November 29,</span> 2023</span>.</cite></span>
</li>
<li id="cite_note-angularjs-ie-compat-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-angularjs-ie-compat_20-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.angularjs.org/guide/ie">"Internet Explorer Compatibility"</a>. <i>Angular JS 1.7.7 Developer Guide</i><span class="reference-accessdate">. Retrieved <span class="nowrap">12 Feb</span> 2019</span>. <q>AngularJS 1.3 has dropped support for IE8. Read more about it on our blog. AngularJS 1.2 will continue to support IE8, but the core team does not plan to spend time addressing issues specific to IE8 or earlier.</q></cite></span>
</li>
<li id="cite_note-angularjs-13-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-angularjs-13_21-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFMinar" class="citation web cs1">Minar, Igor. <a rel="nofollow" class="external text" href="https://archive.today/20141013033445/http://angularjs.blogspot.de/2013/12/angularjs-13-new-release-approaches.html">"AngularJS 1.3: a new release approaches"</a>. <i>AngularJS Blog</i>. Archived from <a rel="nofollow" class="external text" href="http://angularjs.blogspot.com/2013/12/angularjs-13-new-release-approaches.html">the original</a> on 2014-10-13<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-10-12</span></span>.</cite></span>
</li>
<li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://aristeksystems.com/blog/what-is-angular-and-why-do-you-need-it/">"Introduction to Angular"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2021-12-08</span></span>.</cite></span>
</li>
<li id="cite_note-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-23">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://archive.today/20161213231718/http://angularjs.blogspot.de/2016/12/ok-let-me-explain-its-going-to-be.html">"Ok... let me explain: it's going to be Angular 4.0"</a>. <i>angularjs.blogspot.kr</i>. Archived from <a rel="nofollow" class="external text" href="http://angularjs.blogspot.kr/2016/12/ok-let-me-explain-its-going-to-be.html">the original</a> on 2016-12-13<span class="reference-accessdate">. Retrieved <span class="nowrap">2016-12-14</span></span>.</cite></span>
</li>
<li id="cite_note-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-24">^</a></b></span> <span class="reference-text"><cite id="CITEREFFluin2018" class="citation web cs1">Fluin, Stephen (April 26, 2018). <a rel="nofollow" class="external text" href="https://blog.angular.dev/version-5-0-0-of-angular-now-available-37e414935ced">"Version 5.0.0 of Angular Now Available"</a>. <i>Medium</i><span class="reference-accessdate">. Retrieved <span class="nowrap">April 9,</span> 2021</span>.</cite></span>
</li>
<li id="cite_note-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-25">^</a></b></span> <span class="reference-text"><cite id="CITEREFKrill2017" class="citation web cs1">Krill, Paul (September 18, 2017). <a rel="nofollow" class="external text" href="https://www.infoworld.com/article/3225511/angular-5-javascript-framework-delayed.html">"AngularJS 5 JavaScript framework delayed"</a>. <i>InfoWorld</i><span class="reference-accessdate">. Retrieved <span class="nowrap">April 9,</span> 2021</span>.</cite></span>
</li>
<li id="cite_note-26"><span class="mw-cite-backlink"><b><a href="#cite_ref-26">^</a></b></span> <span class="reference-text"><cite id="CITEREFFluin2018" class="citation web cs1">Fluin, Stephen (3 May 2018). <a rel="nofollow" class="external text" href="https://blog.angular.dev/version-6-of-angular-now-available-cc56b0efa7a4">"Version 6 of Angular Now Available – Angular Blog"</a>. <i>Angular Blog</i><span class="reference-accessdate">. Retrieved <span class="nowrap">8 June</span> 2018</span>.</cite></span>
</li>
<li id="cite_note-27"><span class="mw-cite-backlink"><b><a href="#cite_ref-27">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://angular.io/guide/releases#release-schedule">"Angular versioning and releases"</a>. <i>angular.io</i><span class="reference-accessdate">. Retrieved <span class="nowrap">8 June</span> 2018</span>.</cite></span>
</li>
<li id="cite_note-28"><span class="mw-cite-backlink"><b><a href="#cite_ref-28">^</a></b></span> <span class="reference-text"><cite id="CITEREFPieszak2020" class="citation web cs1">Pieszak, Mark (January 7, 2020). <a rel="nofollow" class="external text" href="https://medium.com/@MarkPieszak/angular-universal-server-side-rendering-deep-dive-dc442a6be7b7">"Angular Universal & Server-side rendering Deep-Dive"</a>. <i>Medium</i><span class="reference-accessdate">. Retrieved <span class="nowrap">April 9,</span> 2021</span>.</cite></span>
</li>
<li id="cite_note-angularjs-material-github-29"><span class="mw-cite-backlink"><b><a href="#cite_ref-angularjs-material-github_29-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/angular/material">"angular/material (GitHub)"</a>. <i><a href="GitHub" title="GitHub">GitHub</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">2020-12-24</span></span>.</cite></span>
</li>
<li id="cite_note-angularjs-material-documentation-30"><span class="mw-cite-backlink"><b><a href="#cite_ref-angularjs-material-documentation_30-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://material.angularjs.org">"AngularJS Material Documentation"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2020-12-24</span></span>.</cite></span>
</li>
<li id="cite_note-31"><span class="mw-cite-backlink"><b><a href="#cite_ref-31">^</a></b></span> <span class="reference-text"><cite id="CITEREFKotaru2016" class="citation book cs1">Kotaru, V. Keerti (2016-08-25). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=3gvpDAAAQBAJ"><i>Material Design Implementation with AngularJS: UI Component Framework</i></a>. Apress. p. 4. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>9781484221907</bdi>.</cite></span>
</li>
<li id="cite_note-32"><span class="mw-cite-backlink"><b><a href="#cite_ref-32">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://material.angularjs.org/latest/">"AngularJS Material"</a>. <i>material.angularjs.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2022-05-04</span></span>.</cite></span>
</li>
<li id="cite_note-batarang-github-33"><span class="mw-cite-backlink"><b><a href="#cite_ref-batarang-github_33-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/angular/angularjs-batarang">"angular/angularjs-batarang (GitHub)"</a>. <i><a href="GitHub" title="GitHub">GitHub</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">2014-10-12</span></span>.</cite></span>
</li>
<li id="cite_note-introbatarang-34"><span class="mw-cite-backlink"><b><a href="#cite_ref-introbatarang_34-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFFord" class="citation web cs1">Ford, Brian. <a rel="nofollow" class="external text" href="https://archive.today/20141013033447/http://angularjs.blogspot.de/2012/07/introducing-angularjs-batarang.html">"Introducing the AngularJS Batarang"</a>. <i>AngularJS Blog</i>. Archived from <a rel="nofollow" class="external text" href="http://angularjs.blogspot.com/2012/07/introducing-angularjs-batarang.html">the original</a> on 2014-10-13<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-10-12</span></span>.</cite></span>
</li>
<li id="cite_note-35"><span class="mw-cite-backlink"><b><a href="#cite_ref-35">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://stackoverflow.com/questions/23506526/batarang-chrome-extension-for-angularjs-appears-broken">"batarang Chrome extension for AngularJS appears broken"</a>. <i>Stack Overflow</i>.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="Further_reading">Further reading</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239549316">
/* start https://en.wikipedia.org/ */
.mw-parser-output .refbegin{margin-bottom:0.5em}.mw-parser-output .refbegin-hanging-indents>ul{margin-left:0}.mw-parser-output .refbegin-hanging-indents>ul>li{margin-left:0;padding-left:3.2em;text-indent:-3.2em}.mw-parser-output .refbegin-hanging-indents ul,.mw-parser-output .refbegin-hanging-indents ul li{list-style:none}@media(max-width:720px){.mw-parser-output .refbegin-hanging-indents>ul>li{padding-left:1.6em;text-indent:-1.6em}}.mw-parser-output .refbegin-columns{margin-top:0.3em}.mw-parser-output .refbegin-columns ul{margin-top:0}.mw-parser-output .refbegin-columns li{page-break-inside:avoid;break-inside:avoid-column}@media screen{.mw-parser-output .refbegin{font-size:90%}}
/* end https://en.wikipedia.org/ */
</style><div class="refbegin" style="">
<ul><li><cite id="CITEREFGreenSeshadri2013" class="citation book cs1">Green, Brad; Seshadri, Shyam (March 22, 2013). <a rel="nofollow" class="external text" href="http://shop.oreilly.com/product/0636920028055.do"><i>AngularJS</i></a> (1st ed.). <a href="O'Reilly_Media" title="O'Reilly Media">O'Reilly Media</a>. p. 150. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-1449344856</bdi>.</cite></li>
<li><cite id="CITEREFKozlowskiDarwin2013" class="citation book cs1">Kozlowski, Pawel; Darwin, Peter Bacon (August 23, 2013). <a rel="nofollow" class="external text" href="https://www.packtpub.com/angularjs-web-application-development/book"><i>Mastering Web Application Development with AngularJS</i></a> (1st ed.). <a href="Packt_Publishing" class="mw-redirect" title="Packt Publishing">Packt Publishing</a>. p. 372. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-1782161820</bdi>.</cite></li>
<li><cite id="CITEREFRuebbelke2015" class="citation book cs1">Ruebbelke, Lukas (January 1, 2015). <i>AngularJS in Action</i> (1st ed.). <a href="Manning_Publications" title="Manning Publications">Manning Publications</a>. p. 325. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-1617291333</bdi>.</cite></li></ul>
</div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1290876196">
/* start https://en.wikipedia.org/ */
.mw-parser-output .side-box{margin:4px 0;box-sizing:border-box;border:1px solid #aaa;font-size:88%;line-height:1.25em;background-color:var(--background-color-interactive-subtle,#f8f9fa);display:flow-root}.mw-parser-output .infobox .side-box{font-size:100%}.mw-parser-output .side-box-abovebelow,.mw-parser-output .side-box-text{padding:0.25em 0.9em}.mw-parser-output .side-box-image{padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .side-box-imageright{padding:2px 0.9em 2px 0;text-align:center}@media(min-width:500px){.mw-parser-output .side-box-flex{display:flex;align-items:center}.mw-parser-output .side-box-text{flex:1;min-width:0}}@media(min-width:720px){.mw-parser-output .side-box{width:238px}.mw-parser-output .side-box-right{clear:right;float:right;margin-left:1em}.mw-parser-output .side-box-left{margin-right:1em}}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1237033735">
/* start https://en.wikipedia.org/ */
@media print{body.ns-0 .mw-parser-output .sistersitebox{display:none!important}}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}
/* end https://en.wikipedia.org/ */
</style><div class="side-box side-box-right sistersitebox"><style data-mw-deduplicate="TemplateStyles:r1126788409">
/* start https://en.wikipedia.org/ */
.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}
/* end https://en.wikipedia.org/ */
</style>
<div class="side-box-flex">
<div class="side-box-image"><span class="noviewer" typeof="mw:File"></span></div>
<div class="side-box-text plainlist">Wikimedia Commons has media related to <span style="font-weight: bold; font-style: italic;"><a href="https://commons.wikimedia.org/wiki/Category:AngularJS" class="extiw external" title="commons:Category:AngularJS">AngularJS</a></span>.</div></div>
</div>
<ul><li><span class="official-website"><span class="url"><a rel="nofollow" class="external text" href="https://angular.io/">Official website</a></span></span></li>
<li><cite id="CITEREFHoneypot2025" class="citation audio-visual cs1">Honeypot (2025-02-04). <a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=cRC9DlH45lA"><i>Angular: The Documentary | An origin story</i></a><span class="reference-accessdate">. Retrieved <span class="nowrap">2025-02-05</span></span> – via YouTube.</cite></li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="JavaScript_templating_libraries74" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div id="JavaScript_templating_libraries74" style="font-size:114%;margin:0 4em"><a href="JavaScript_templating" title="JavaScript templating">JavaScript templating libraries</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Libraries</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Angular_(web_framework)" title="Angular (web framework)">Angular</a>
<ul></ul></li>
<li><a href="Backbone.js" title="Backbone.js">Backbone.js</a></li>
<li><a href="Ember.js" title="Ember.js">Ember.js</a></li>
<li><a href="Knockout_(web_framework)" title="Knockout (web framework)">Knockout</a></li>
<li><a href="Mustache_(template_system)" title="Mustache (template system)">Mustache.js</a>
<ul><li><a href="Mustache_(template_system)#Handlebars" title="Mustache (template system)">Handlebars.js</a></li></ul></li>
<li><a href="React_(software)" title="React (software)">React.js</a></li>
<li><a href="Vue.js" title="Vue.js">Vue.js</a></li>
<li><a href="Svelte" title="Svelte">Svelte</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Concepts</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Model%E2%80%93view%E2%80%93controller" title="Model–view–controller">Model–view–controller (MVC)</a></li>
<li><a href="Model%E2%80%93view%E2%80%93viewmodel" title="Model–view–viewmodel">Model–view–viewmodel (MVVM)</a></li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox" aria-labelledby="Web_frameworks386" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Web_frameworks386" style="font-size:114%;margin:0 4em"><a href="Web_framework" title="Web framework">Web frameworks</a></div></th></tr><tr><td class="navbox-abovebelow hlist" colspan="2"><div>
<ul><li><a href="Comparison_of_server-side_web_frameworks" title="Comparison of server-side web frameworks">Comparison</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href=".NET" title=".NET">.NET</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="ASP.NET" title="ASP.NET">ASP.NET</a>
<ul><li><a href="ASP.NET_Core" title="ASP.NET Core">Core</a></li>
<li><a href="ASP.NET_AJAX" title="ASP.NET AJAX">AJAX</a></li>
<li><a href="ASP.NET_Dynamic_Data" title="ASP.NET Dynamic Data">Dynamic Data</a></li>
<li><a href="ASP.NET_MVC" title="ASP.NET MVC">MVC</a></li>
<li><a href="ASP.NET_Razor" title="ASP.NET Razor">Razor</a></li>
<li><a href="ASP.NET_Web_Forms" title="ASP.NET Web Forms">Web Forms</a></li></ul></li>
<li><a href="Blazor" title="Blazor">Blazor</a></li>
<li><a href="DotNetNuke" class="mw-redirect" title="DotNetNuke">DNN</a></li>
<li><a href="Base_One_Foundation_Component_Library" title="Base One Foundation Component Library">BFC</a></li>
<li><a href="MonoRail_(software)" title="MonoRail (software)">MonoRail</a></li>
<li><a href="Umbraco" title="Umbraco">Umbraco</a></li>
<li><a href="WebSharper" title="WebSharper">WebSharper</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="C%2B%2B" title="C++">C++</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="CppCMS" title="CppCMS">CppCMS</a></li>
<li><a href="Drogon_(software)" title="Drogon (software)">Drogon</a></li>
<li><a href="Wt_(web_toolkit)" title="Wt (web toolkit)">Wt</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Adobe_ColdFusion" title="Adobe ColdFusion">ColdFusion</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="ColdBox_Platform" title="ColdBox Platform">ColdBox Platform</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Common_Lisp" title="Common Lisp">Common Lisp</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="CL-HTTP" title="CL-HTTP">CL-HTTP</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Haskell" title="Haskell">Haskell</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Servant_(web_framework)" title="Servant (web framework)">Servant</a></li>
<li><a href="Snap_(web_framework)" title="Snap (web framework)">Snap</a></li>
<li><a href="Yesod_(web_framework)" title="Yesod (web framework)">Yesod</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Java_(software_platform)" title="Java (software platform)">Java</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="AppFuse" title="AppFuse">AppFuse</a></li>
<li><a href="Grails_(framework)" title="Grails (framework)">Grails</a></li>
<li><a href="Google_Web_Toolkit" title="Google Web Toolkit">GWT</a></li>
<li><a href="ICEfaces" title="ICEfaces">ICEfaces</a></li>
<li><a href="JHipster" title="JHipster">JHipster</a></li>
<li><a href="JWt_(Java_web_toolkit)" title="JWt (Java web toolkit)">JWt</a></li>
<li><a href="Jakarta_Faces#JSF_and_Ajax" title="Jakarta Faces">Mojarra</a></li>
<li><a href="Play_Framework" title="Play Framework">Play</a></li>
<li><a href="Remote_Application_Platform" title="Remote Application Platform">Remote Application Platform</a></li>
<li><a href="JBoss_Seam" title="JBoss Seam">Seam</a></li>
<li><a href="Apache_Sling" title="Apache Sling">Sling</a></li>
<li><a href="Spring_Framework#Model-view-controller_framework" title="Spring Framework">Spring</a></li>
<li><a href="Stripes_(framework)" title="Stripes (framework)">Stripes</a></li>
<li><a href="Apache_Struts" title="Apache Struts">Struts</a></li>
<li><a href="Apache_Tapestry" title="Apache Tapestry">Tapestry</a></li>
<li><a href="Vaadin" title="Vaadin">Vaadin</a></li>
<li><a href="Vert.x" title="Vert.x">Vert.x</a></li>
<li><a href="Apache_Wicket" title="Apache Wicket">Wicket</a></li>
<li><a href="WaveMaker" title="WaveMaker">WaveMaker</a></li>
<li><a href="ZK_(framework)" title="ZK (framework)">ZK</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="JavaScript" title="JavaScript">JavaScript</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Angular_(web_framework)" title="Angular (web framework)">Angular</a>/</li>
<li><a href="Backbone.js" title="Backbone.js">Backbone.js</a></li>
<li><a href="Google_Closure_Tools" title="Google Closure Tools">Closure</a></li>
<li><a href="Dojo_Toolkit" title="Dojo Toolkit">Dojo Toolkit</a></li>
<li><a href="Ember.js" title="Ember.js">Ember.js</a></li>
<li><a href="Express.js" title="Express.js">Express.js</a></li>
<li><a href="Ext_JS" title="Ext JS">Ext JS</a></li>
<li><a href="Fastify" title="Fastify">Fastify</a></li>
<li><a href="Htmx" title="Htmx">htmx</a></li>
<li><a href="JQuery" title="JQuery">jQuery</a></li>
<li><a href="Knockout.js" class="mw-redirect" title="Knockout.js">Knockout.js</a></li>
<li><a href="Meteor_(web_framework)" title="Meteor (web framework)">Meteor</a></li>
<li><a href="MooTools" title="MooTools">MooTools</a></li>
<li><a href="NestJS" title="NestJS">NestJS</a></li>
<li><a href="Next.js" title="Next.js">Next.js</a></li>
<li><a href="Nuxt.js" class="mw-redirect" title="Nuxt.js">Nuxt.js</a></li>
<li><a href="Node.js" title="Node.js">Node.js</a></li>
<li><a href="OpenUI5" title="OpenUI5">OpenUI5</a></li>
<li><a href="Prototype_JavaScript_Framework" title="Prototype JavaScript Framework">Prototype</a></li>
<li><a href="React_(software)" title="React (software)">React</a></li>
<li><a href="Remix_(web_framework)" class="mw-redirect" title="Remix (web framework)">Remix</a></li>
<li><a href="Sencha_Touch" title="Sencha Touch">Sencha Touch</a></li>
<li><a href="SproutCore" title="SproutCore">SproutCore</a></li>
<li><a href="Svelte" title="Svelte">Svelte</a></li>
<li><a href="Vue.js" title="Vue.js">Vue.js</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Perl" title="Perl">Perl</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Catalyst_(software)" title="Catalyst (software)">Catalyst</a></li>
<li><a href="Dancer_(software)" title="Dancer (software)">Dancer</a></li>
<li><a href="Maypole_framework" class="mw-redirect" title="Maypole framework">Maypole</a></li>
<li><a href="Mojolicious" title="Mojolicious">Mojolicious</a></li>
<li><a href="WebGUI" title="WebGUI">WebGUI</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="PHP" title="PHP">PHP</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="CakePHP" title="CakePHP">CakePHP</a></li>
<li><a href="CodeIgniter" title="CodeIgniter">CodeIgniter</a></li>
<li><a href="Drupal" title="Drupal">Drupal</a></li>
<li><a href="EZ_Publish" title="EZ Publish">eZ Publish</a></li>
<li><a href="Fat-Free_Framework" title="Fat-Free Framework">Fat-Free</a></li>
<li><a href="Neos_Flow" title="Neos Flow">Flow</a></li>
<li><a href="FuelPHP" title="FuelPHP">FuelPHP</a></li>
<li><a href="Grav_(CMS)" title="Grav (CMS)">Grav</a></li>
<li><a href="Gyroscope_(software)" title="Gyroscope (software)">Gyroscope</a></li>
<li><a href="Horde_(software)" title="Horde (software)">Horde</a></li>
<li><a href="Joomla" title="Joomla">Joomla!</a></li>
<li><a href="Laminas" title="Laminas">Laminas</a></li>
<li><a href="Laravel" title="Laravel">Laravel</a></li>
<li><a href="Li3_(software)" title="Li3 (software)">li₃</a></li>
<li><a href="Midgard_(software)" title="Midgard (software)">Midgard</a></li>
<li><a href="MODX" title="MODX">MODX</a></li>
<li><a href="Phalcon_(framework)" title="Phalcon (framework)">Phalcon</a></li>
<li><a href="PHP-Fusion" title="PHP-Fusion">PHP-Fusion</a></li>
<li><a href="PHP-Nuke" title="PHP-Nuke">PHP-Nuke</a></li>
<li><a href="Pop_PHP_Framework" title="Pop PHP Framework">Pop PHP</a></li>
<li><a href="PRADO_(framework)" title="PRADO (framework)">PRADO</a></li>
<li><a href="ProcessWire" title="ProcessWire">ProcessWire</a></li>
<li><a href="Qcodo" title="Qcodo">Qcodo</a></li>
<li><a href="Silverstripe_CMS" title="Silverstripe CMS">Silverstripe</a></li>
<li><a href="Symfony" title="Symfony">Symfony</a></li>
<li><a href="TYPO3" title="TYPO3">TYPO3</a></li>
<li><a href="WordPress" title="WordPress">WordPress</a></li>
<li><a href="XOOPS" title="XOOPS">XOOPS</a></li>
<li><a href="Yii" title="Yii">Yii</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Python_(programming_language)" title="Python (programming language)">Python</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Zope#BlueBream" title="Zope">BlueBream</a></li>
<li><a href="CherryPy" title="CherryPy">CherryPy</a></li>
<li><a href="CubicWeb" title="CubicWeb">CubicWeb</a></li>
<li><a href="Django_(web_framework)" title="Django (web framework)">Django</a></li>
<li><a href="FastAPI" title="FastAPI">FastAPI</a></li>
<li><a href="Flask_(web_framework)" title="Flask (web framework)">Flask</a></li>
<li><a href="Grok_(web_framework)" class="mw-redirect" title="Grok (web framework)">Grok</a></li>
<li><a href="Nevow" class="mw-redirect" title="Nevow">Nevow</a></li>
<li><a href="Pyjs" title="Pyjs">Pyjs</a></li>
<li><a href="Pylons_project#Pylons_Framework" title="Pylons project">Pylons</a></li>
<li><a href="Pylons_project#Pyramid" title="Pylons project">Pyramid</a></li>
<li><a href="Quixote_(web_framework)" title="Quixote (web framework)">Quixote</a></li>
<li><a href="Tornado_(web_server)" title="Tornado (web server)">Tornado</a></li>
<li><a href="TurboGears" title="TurboGears">TurboGears</a></li>
<li><a href="Web2py" title="Web2py">web2py</a></li>
<li><a href="Zope#Zope_2" title="Zope">Zope 2</a></li>
<li><i>more</i>...</li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Merb" title="Merb">Merb</a></li>
<li><a href="Padrino_(web_framework)" title="Padrino (web framework)">Padrino</a></li>
<li><a href="Ruby_on_Rails" title="Ruby on Rails">Ruby on Rails</a></li>
<li><a href="Sinatra_(software)" title="Sinatra (software)">Sinatra</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Rust_(programming_language)" title="Rust (programming language)">Rust</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Rocket_(web_framework)" title="Rocket (web framework)">Rocket</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Scala_(programming_language)" title="Scala (programming language)">Scala</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Lift_(web_framework)" title="Lift (web framework)">Lift</a></li>
<li><a href="Play_Framework" title="Play Framework">Play</a></li>
<li><a href="Scalatra" title="Scalatra">Scalatra</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Smalltalk" title="Smalltalk">Smalltalk</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="AIDA/Web" title="AIDA/Web">AIDA/Web</a></li>
<li><a href="Seaside_(software)" title="Seaside (software)">Seaside</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other languages</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Oracle_Application_Express" title="Oracle Application Express">Application Express</a> (<a href="PL/SQL" title="PL/SQL">PL/SQL</a>)</li>
<li><a href="Grails_(framework)" title="Grails (framework)">Grails</a> (<a href="Groovy_(programming_language)" class="mw-redirect" title="Groovy (programming language)">Groovy</a>)</li>
<li><a href="OpenACS" class="mw-redirect" title="OpenACS">OpenACS</a> (<a href="Tcl" title="Tcl">Tcl</a>)</li>
<li><a href="Phoenix_(web_framework)" title="Phoenix (web framework)">Phoenix</a> (<a href="Elixir_(programming_language)" title="Elixir (programming language)">Elixir</a>)</li>
<li><a href="Shiny_(web_framework)" title="Shiny (web framework)">Shiny (web framework)</a> (<a href="R_(programming_language)" title="R (programming language)">R</a>)</li>
<li><a href="SproutCore" title="SproutCore">SproutCore</a> (<a href="JavaScript" title="JavaScript">JavaScript</a>-<a href="Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a>)</li>
<li><a href="Yaws_(web_server)" title="Yaws (web server)">Yaws</a> (<a href="Erlang_(programming_language)" title="Erlang (programming language)">Erlang</a>)</li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox" aria-labelledby="Google_free_and_open-source_software55" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Google_free_and_open-source_software55" style="font-size:114%;margin:0 4em"><a href="Google" title="Google">Google</a> free and open-source software</div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Software</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Applications</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Chromium_(web_browser)" title="Chromium (web browser)">Chromium</a></li>
<li><a href="Gemini_(language_model)" title="Gemini (language model)">Gemma</a></li>
<li><a href="OpenRefine" title="OpenRefine">OpenRefine</a></li>
<li><a href="Tesseract_(software)" title="Tesseract (software)">Tesseract</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Programming languages</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Carbon_(programming_language)" title="Carbon (programming language)">Carbon</a></li>
<li><a href="Dart_(programming_language)" title="Dart (programming language)">Dart</a></li>
<li><a href="Go_(programming_language)" title="Go (programming language)">Go</a></li>
<li><a href="Sawzall_(programming_language)" title="Sawzall (programming language)">Sawzall</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Frameworks and<br>development tools</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Accelerated_Mobile_Pages" title="Accelerated Mobile Pages">AMP</a></li>
<li><a href="Angular_(web_framework)" title="Angular (web framework)">Angular</a></li>
<li><a href="Apache_Beam" title="Apache Beam">Beam</a></li>
<li><a href="Bazel_(software)" title="Bazel (software)">Bazel</a></li>
<li><a href="Blockly" title="Blockly">Blockly</a></li>
<li><a href="Brotli" title="Brotli">Brotli</a></li>
<li><a href="Google_Closure_Tools" title="Google Closure Tools">Closure Tools</a></li>
<li><a href="Cpplint" title="Cpplint">Cpplint</a></li>
<li><a href="FlatBuffers" title="FlatBuffers">FlatBuffers</a></li>
<li><a href="Flutter_(software)" title="Flutter (software)">Flutter</a></li>
<li><a href="Ganeti" title="Ganeti">Ganeti</a></li>
<li><a href="Gears_(software)" title="Gears (software)">Gears</a></li>
<li><a href="Gerrit_(software)" title="Gerrit (software)">Gerrit</a></li>
<li><a href="GLOP" title="GLOP">GLOP</a></li>
<li><a href="GRPC" title="GRPC">gRPC</a></li>
<li><a href="Gson" title="Gson">Gson</a></li>
<li><a href="Google_Guava" title="Google Guava">Guava</a></li>
<li><a href="Guetzli" title="Guetzli">Guetzli</a></li>
<li><a href="Google_Guice" title="Google Guice">Guice</a></li>
<li><a href="GVisor" title="GVisor">gVisor</a></li>
<li><a href="Kubernetes" title="Kubernetes">Kubernetes</a></li>
<li><a href="LevelDB" title="LevelDB">LevelDB</a></li>
<li><a href="Libvpx" title="Libvpx">libvpx</a></li>
<li><a href="Lighthouse_(software)" title="Lighthouse (software)">Lighthouse</a></li>
<li><a href="Google_Native_Client" title="Google Native Client">NaCl</a></li>
<li><a href="Namebench" title="Namebench">Namebench</a></li>
<li><a href="Nomulus" title="Nomulus">Nomulus</a></li>
<li><a href="OR-Tools" title="OR-Tools">OR-Tools</a></li>
<li><a href="Polymer_(library)" title="Polymer (library)">Polymer</a></li>
<li><a href="Protocol_Buffers" title="Protocol Buffers">Protocol Buffers</a></li>
<li><a href="TensorFlow" title="TensorFlow">TensorFlow</a></li>
<li><a href="V8_(JavaScript_engine)" title="V8 (JavaScript engine)">V8</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Operating systems</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Android_(operating_system)" title="Android (operating system)">Android</a></li>
<li><a href="ChromiumOS" title="ChromiumOS">ChromiumOS</a></li>
<li><a href="Fuchsia_(operating_system)" title="Fuchsia (operating system)">Fuchsia</a></li>
<li><a href="GLinux" title="GLinux">gLinux</a></li>
<li><a href="Goobuntu" title="Goobuntu">Goobuntu</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Related</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Google_Code-in" title="Google Code-in">Code-in</a></li>
<li><i><a href="Google_LLC_v._Oracle_America%2C_Inc." title="Google LLC v. Oracle America, Inc.">Google LLC v. Oracle America, Inc.</a></i></li>
<li><a href="Open_Source_Security_Foundation" title="Open Source Security Foundation">Open Source Security Foundation</a></li>
<li><a href="Google_Summer_of_Code" title="Google Summer of Code">Summer of Code</a></li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox" aria-labelledby="Node.js47" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="3"><div id="Node.js47" style="font-size:114%;margin:0 4em"><a href="Node.js" title="Node.js">Node.js</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Platform</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Node.js" title="Node.js">Node.js</a></li>
<li><a href="Npm" title="Npm">npm</a></li>
<li><a href="V8_(JavaScript_engine)" title="V8 (JavaScript engine)">V8</a></li>
<li><a href="CommonJS" title="CommonJS">CommonJS</a></li></ul>
</div></td><td class="noviewer navbox-image" rowspan="4" style="width:1px;padding:0 0 0 2px"><div><span typeof="mw:File"></span></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Frameworks</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="MEAN_(solution_stack)" class="mw-redirect" title="MEAN (solution stack)">MEAN</a>
<ul><li><a href="MongoDB" title="MongoDB">MongoDB</a></li>
<li><a href="Express.js" title="Express.js">Express.js</a></li>
<li>/<a href="Angular_(web_framework)" title="Angular (web framework)">Angular</a></li></ul></li>
<li>MEEN (substituted with <a href="Ember.js" title="Ember.js">Ember.js</a>)</li>
<li><a href="Backbone.js" title="Backbone.js">Backbone.js</a></li>
<li><a href="Fastify" title="Fastify">Fastify</a></li>
<li><a href="Meteor_(web_framework)" title="Meteor (web framework)">Meteor</a></li>
<li><a href="Sails.js" title="Sails.js">Sails.js</a> (uses Express.js)</li>
<li><a href="NestJS" title="NestJS">NestJS</a></li>
<li><a href="Next.js" title="Next.js">Next.js</a></li>
<li><a href="Nuxt.js" class="mw-redirect" title="Nuxt.js">Nuxt.js</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Libraries</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Lodash" title="Lodash">Lodash</a></li>
<li><a href="Underscore.js" title="Underscore.js">Underscore.js</a></li>
<li><a href="React.js" class="mw-redirect" title="React.js">React.js</a></li>
<li><a href="Vue.js" title="Vue.js">Vue.js</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Languages</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="JavaScript" title="JavaScript">JavaScript</a></li>
<li><a href="CoffeeScript" title="CoffeeScript">CoffeeScript</a></li>
<li><a href="TypeScript" title="TypeScript">TypeScript</a></li>
<li><a href="WebAssembly" title="WebAssembly">WebAssembly</a>
<ul><li><a href="AssemblyScript" title="AssemblyScript">AssemblyScript</a></li>
<li><a href="C_(programming_language)" title="C (programming language)">C</a></li>
<li><a href="Rust_(programming_language)" title="Rust (programming language)">Rust</a></li></ul></li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox authority-control" aria-label="Navbox507" style="padding:3px"><table class="nowraplinks hlist navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Authority control databases: National </th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://id.loc.gov/authorities/n2017036141">United States</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://www.nli.org.il/en/authorities/987009631488605171">Israel</a></span></li></ul></div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-06-08" href="https://en.wikipedia.org/wiki/?title=AngularJS&oldid=1294561687">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>